package com.averyday.demo.stream;

import java.time.LocalDateTime;
import java.util.stream.IntStream;

/**
 * 使用 20 个线程（threadCount）以并行方式总计执行 10000 次（taskCount）操作。
 * 因为单个任务单线程执行需要 10 毫秒（任务代码如下），也就是每秒吞吐量是 100 个操作，
 * 那 20 个线程 QPS 是 2000，执行完 10000 次操作最少耗时 5 秒。
 */
public class StreamParallel {

    public static void main(String[] args) {


        IntStream.rangeClosed(1, 100).parallel().forEach(i -> {
            System.out.println(LocalDateTime.now() + " : " + i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
        });
    }
}
